1. Field of the Invention
The invention relates to a data processing system and, particularly, to a data multiprocessing system having a plurality of processors.
2. Description of the Prior Art
With a view toward improving system performance and reliability, a data processing system using a plurality of processors has recently been put into practice. In this type of data processing system the processors make common use of a main memory unit (MMU) in order to execute interrelated processes. The MMU stores a use-status word to indicate whether specific data stored as a common resource in the MMU (for example, control data to synchronize the operation of each processor) is available for exclusive use, or not. Generally, logical "0" (or "1") indicates that the data of the specific common resource desired is available for exclusive use, while "1" (or "0") indicates that it is not so usable. Each processor, before use of the common resource, reads out the use-status word to determine whether the common resource is usable or not, by means of an arithmetic and logic circuit (ALU) provided in the processor. If the common resource is usable, the status word is set to the state representing the inhibition of exclusive use of the common resource. Following this, the processor moves on to an operation to use the common resource. On the other hand, when the status word indicates that the exclusive use of the common resource is impossible because the resource is currently used by another processor, the processor either waits until the status word indicates the usable state of the common resource or avoids the use of the common resource.
As described above, each processor in such a data processing system reads out the status word stored in the MMU before the use of the common resource, judges the contents of the status word read out, and (if the resource is usable) sets the status word to "1" or "0" to have exclusive use of the resource.
Another type of multiprocessing system also put to practical use is one in which the MMU itself judges whether the status word indicates the usable or unusable state of the resource. In this type data processing system, each processor sends to the MMU a test-and-set request as a special request as well as write-in data to set the status word to the unusable common resource state. Then, the MMU reads out the status word and judges by use of an ALU provided in the MMU whether or not the contents of the status word read out coincides with "0" representing the usable common resource. As a result of this judgement, when the status word indicates that the common resource is usable, the write-in data given from the processor is set into the status word to set the word to the unusable resource state. On the other hand, when the status word indicates the unusable state of the common resource, the status word remains unchanged. Irrespective of the judging result, the MMU sends the result of the judgement to the processor as a reply. Upon receipt of the reply, the processor tests whether the resource is usable or not on the basis of the status word included in the reply signal. On the basis of result of the test, the processor either starts the use of the common resource, waits until the resource is usable, or avoids the use of the common resource.
In both of these cases, after the use of the common resource is completed, the processor changes the contents of the status word back to the usable resource state by the write instruction for the MMU.
In multiprocessing systems, the above-mentioned operation has generally been performed by software technology. Recently, however, many functions thus made by the software have gradually been superseded by hardware or firmware technology. Such a system arrangement is discussed in detail by Edsger W. Dijkstra in his paper entitled "The structure of the "THE"--Multiprogramming System," in Communications of the ACM, Volume 11, Number 5, published in May 1968 by the Association for Computing Machinery, and by the same author in his paper entitled "Co-Operating Sequential Processes" on pages 43 to 112 in NATO Advanced Study Institute, Programming Languages, published in 1968 by Academic Press, London and New York.
In the control for the exclusive use of the common resource in conventional multiprocessing systems, when the processor currently using a common resource becomes inoperative, the control cannot change the contents of the status word back to the usable state. As a result, when another processor requires the common resource, it cannot initiate the operation of handling the common resource, resulting in a so-called "system down".